package com.ruirenyun.util.common;

import com.ruirenyun.util.exception.CommonException;
import org.springframework.lang.NonNull;

/**
 * Created with IntelliJ IDEA.
 *
 * @author Deng Ye
 * @version 1.0
 * @date 2020/9/2
 * @description 参数校验类 参考Guava Preconditions
 * @modifiedBy
 */
public final class Precondition {
    private Precondition() {
    }

    /**
     * 功能描述 参数校验 为真 不为真则抛出异常
     *
     * @param expression   boolean
     * @param errorMessage 必须使用SYS.XXXXX.name() 否则不能返回正确的错误信息
     * @return void
     * @author Deng Ye
     * @date 2020/9/2 9:32
     */
    public static void checkArgument(boolean expression, @NonNull String errorMessage) {
        if (!expression) {
            throw new CommonException(errorMessage);
        }
    }

    /**
     * 功能描述 参数校验 不为空
     *
     * @param reference    boolean
     * @param errorMessage 必须使用SYS.XXXXX.name() 否则不能返回正确的错误信息
     * @return void
     * @author Deng Ye
     * @date 2020/9/2 9:32
     */
    public static <T> T checkNotNull(T reference, @NonNull String errorMessage) {
        if (reference == null) {
            throw new CommonException(errorMessage);
        } else {
            return reference;
        }
    }


}
